Hardware and software programmable fuses for memory repair

ABSTRACT

The present invention relates to a system and method for increasing the manufacturing yield of a plurality of memory cells used in cell arrays. A programmable fuse, having both hardware and software elements, is used with the plurality of memory cells to indicate that at least one memory cell is unusable and should be shifted out of operation. The software programmable element includes a programmable register adapted to shift in an appropriate value indicating that at least one of the memory cells is flawed. The hardware element includes a fuse gated with the programmable register. Shifting is indicated either by software programmable fuse or hard fuse. Soft fuse registers may be chained together forming a shift register.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a CONTINUATION of U.S. application Ser. No.12/122,932, filed May 19, 2008, now issued U.S. Pat. No. 7,532,031,which is a CONTINUATION of U.S. application Ser. No. 11/447,495, filedJun. 6, 2006, now issued U.S. Pat. No. 7,498,838, which is aCONTINUATION of U.S. application Ser. No. 10/939,679, filed Sep. 13,2004, now issued U.S. Pat. No. 7,095,248, which is a CONTINUATION ofU.S. application Ser. No. 10/101,399, filed Mar. 19, 2002, now issuedU.S. Pat. No. 6,791,367. The above-identified applications are herebyincorporated by reference herein in their entirety.

FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

[Not Applicable]

BACKGROUND OF THE INVENTION

One embodiment of the present invention relates to a programmable devicefor increasing memory cell design yield. More specifically, oneembodiment of the present invention relates to fuses that are bothhardware and software programmable, and adapted to increase design yieldin memory cells.

Memory structures containing multiple memory cells have become anintegral part of modern VLSI systems. Although typically it is desirableto incorporate as many memory cells as possible into a given area,memory cell density is usually constrained by other design factors suchas layout efficiency, performance, power requirements, and noisesensitivity.

Highly integrated, high performance components for such VLSI systemslike memory structures require complex fabrication and manufacturingprocesses. These processes may experience unavoidable parameter defectsthat can impose unwanted physical defects on the units being produced.Redundancy is added or built into memory structures to enhance yield,hopefully providing a one-for-one replacement for a failed part orsubsystem. As the memory cells continue to push design limits, theoverall yield per memory cell unit area tends to decrease.

Currently fuses are used to indicate or encode those rows or columns ofmemory cells that are to be shifted out of operation, so that only thosememory cells without flaws are useable. These fuses are generally laserprogrammable or electrically one-time programmable fuses. Duringmanufacturing, the fuses are blown, using a laser device or electricpulse, to indicate those locations that are unusable.

It should be appreciated that this blowing a fuse using a laser deviceor electric pulse is a one-time operation. Once the laser programmableor electronically one-time programmable fuse is blown, it cannot revertto its original state.

Further limitations and disadvantages of conventional and traditionalapproaches will become apparent to one of skill in the art, throughcomparison of such systems with the present invention as set forth inthe remainder of the present application with reference to the drawings.

SUMMARY OF THE INVENTION

One embodiment of the present invention relates to a programmable fuseused with at least one memory cell to increase manufacturing yield ofthe memory cell. The programmable fuse includes at least a softwareprogrammable element adapted to shift in an appropriate value indicatingthat the memory cell is flawed. The programmable fuse may furtherinclude a hardware programmable element that is also adapted to indicatethat the at least one memory cell is flawed.

Another embodiment of the present invention relates to a programmablefuse, having both hardware and software elements, used with a pluralityof memory cells to indicate that at least one of the memory cells isunusable and should be shifted out of operation. The softwareprogrammable element includes a programmable register adapted to shiftin an appropriate value indicating that at least one of the memory cellsis flawed. The hardware element includes a fuse gated with theprogrammable register. Shifting is indicated either by softwareprogrammable fuse or hard fuse. Soft fuse registers may be chainedtogether forming a shift register.

Another embodiment of the present invention includes a method ofincreasing manufacturing yield of a memory cell. The method includesforming a cell having hardware and software elements. The cell isevaluated and, if faulty, such fault is indicated and the memory cell isshifted out of operation using either the hardware or software elements.

Other aspects, advantages and novel features of the present invention,as well as details of an illustrated embodiment thereof, will be morefully understood from the following description and drawing, whereinlike numerals refer to like parts.

BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 illustrates a block diagram of an exemplary SRAM module;

FIG. 2 illustrates a block diagram of a SRAM memory core divided intobanks;

FIGS. 3A and 3B illustrate SRAM modules including a block structure orsubsystem in accordance with one embodiment of the present invention;

FIG. 4 illustrates a dimensional block array or subsystem used in a SRAMmodule in accordance with one embodiment of the present invention;

FIG. 5 illustrates a cell array comprising a plurality of memory cellsin accordance with one embodiment of the present invention;

FIG. 6A illustrates a memory cell used in accordance with one embodimentof the present invention;

FIG. 6B illustrates back-to-back inventors representing the memory cellof FIG. 6A in accordance with one embodiment of the present invention;

FIG. 7 illustrates a SRAM module similar to that illustrated FIGS. 3Aand 3B in accordance with one embodiment of the present invention;

FIG. 8 illustrates a local decoder in accordance with one embodiment ofthe present invention;

FIG. 9 illustrates a circuit diagram of a local decoder similar to thatillustrated in FIG. 8 in accordance with one embodiment of the presentinvention;

FIG. 10 illustrates a block diagram of the local sense amps and 4:1muxing in accordance with one embodiment of the present invention;

FIG. 11 illustrates a block diagram of the local sense amps and globalsense amps in accordance with one embodiment of the present invention;

FIG. 12A illustrates a schematic representation of the local sense ampsand global sense amps in accordance with one embodiment of the presentinvention;

FIG. 12B illustrates a circuit diagram of an embodiment of a local senseamp (similar to the local sense amp of FIG. 12A) in accordance with oneembodiment of the present invention;

FIG. 12C illustrates a schematic representation of the amplifier coresimilar to the amplifier core illustrated in FIG. 12B;

FIG. 13 illustrates a block diagram of another embodiment of the localsense amps and global sense amps in accordance with one embodiment ofthe present invention;

FIG. 14 illustrates a circuit diagram including a transmission gate ofthe 4:1 mux similar to that illustrated in FIGS. 10 and 12 in accordancewith one embodiment of the present invention;

FIG. 15 illustrates transmission gates of the 2:1 mux coupled to theinverters of a local sense amp in accordance with one embodiment of thepresent invention;

FIG. 16 illustrates the precharge and equalizing portions andtransmission gates of the 2:1 mux coupled to the inverters of a localsense amp in accordance with one embodiment of the present invention;

FIG. 17 illustrates a circuit diagram of the local sense amp inaccordance with one embodiment of the present invention;

FIG. 18 illustrates a block diagram of a local controller in accordancewith one embodiment of the present invention;

FIG. 19 illustrates a circuit diagram of the local controller inaccordance one embodiment of the present invention;

FIG. 20 illustrates the timing for a READ cycle using a SRAM memorymodule in accordance with one embodiment of the present invention;

FIG. 21 illustrates the timing for a WRITE cycle using a SRAM memorymodule in accordance with one embodiment of the present invention;

FIG. 22A illustrates a block diagram of local sense amp having 4:1 localmuxing and precharging incorporated therein in accordance with oneembodiment of the present invention;

FIG. 22B illustrates one example of 16:1 muxing (including 4:1 globalmuxing and local muxing) in accordance with one embodiment of thepresent invention;

FIG. 22C illustrates one example of 32:1 muxing (including 8:1 globalmuxing and local muxing) in accordance with one embodiment of thepresent invention;

FIG. 23 illustrates a local sense amp used with a cluster circuit inaccordance with one embodiment of the present invention;

FIG. 24 illustrates a circuit diagram for currently available hardwareprogrammable fuses;

FIG. 25 illustrates a circuit diagram for a hardware and softwareprogrammable fuse structure in accordance with one embodiment of thepresent invention; and

FIG. 26 illustrates a hardware and software programmable fuse chainedtogether and controlled by a serial fuse and shift clock in accordancewith one embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

As will be understood by one skilled in the art, most VLSI systems,including communications systems and DSP devices, contain VLSI memorysubsystems. Modern applications of VLSI memory subsystems almostinvariably demand high efficiency, high performance implementations thatmagnify the design tradeoffs between layout efficiency, speed, powerconsumption, scalability, design tolerances, and the like. The presentinvention ameliorates these tradeoffs using a novel synchronous,self-timed hierarchical architecture. The memory module of the presentinvention also may employ one or more novel components, which furtheradd to the memory module's efficiency and robustness.

It should be appreciated that it is useful to describe the variousaspects and embodiments of the invention herein in the context of anSRAM memory structure, using CMOS SRAM memory cells. However, it shouldbe further appreciated by those skilled in the art the present inventionis not limited to CMOS-based processes and that these aspects andembodiments may be used in memory products other than a SRAM memorystructure, including without limitation, DRAM, ROM, PLA, and the like,whether embedded within a VLSI system, or stand alone memory devices.

Exemplary SRAM Module

FIG. 1 illustrates a functional block diagram of one example of a SRAMmemory structure 100 providing the basic features of SRAM subsystems.Module 100 includes memory core 102, word line controller 104, andmemory address inputs 114. In this exemplary embodiment, memory core 102is composed of a two-dimensional array of K-bits of memory cells 103,arranged to have C columns and R rows of bit storage locations, whereK=[C×R]. The most common configuration of memory core 102 uses singleword lines 106 to connect cells 103 onto paired differential bitlines118. In general, core 102 is arranged as an array of 2^(P) entries basedon a set of P memory address in. Thus, the p-bit address is decoded byrow address decoder 110 and column address decoder 122. Access to agiven memory cell 103 within such a single-core memory 102 isaccomplished by activating the column 105 by selecting bitline in thecolumn corresponding to cell 103.

The particular row to be accessed is chosen by selective activation ofrow address or wordline decoder 110, which usually corresponds uniquelywith a given row, or word line, spanning all cells 103 in thatparticular row. Also, word line driver 108 can drive a selected wordline 106 such that selected memory cell 103 can be written into or readout on a particular pair of bitlines 118, according to the bit addresssupplied to memory address inputs 114.

Bitline controller 116 may include precharge cells (not shown), columnmultiplexers or decoders 122, sense amplifiers 124, and input/outputbuffers (not shown). Because different READ/WRITE schemes are typicallyused for memory cells, it is desirable that bitlines be placed in awell-defined state before being accessed. Precharge cells may be used toset up the state of bitlines 118, through a PRECHARGE cycle according toa predefined precharging scheme. In a static precharging scheme,precharge cells may be left continuously on except when accessing aparticular block.

In addition to establishing a defined state on bitlines 118, prechargingcells can also be used to effect equalization of differential voltageson bitlines 118 prior to a READ operation. Sense amplifiers 124 enablethe size of memory cell 103 to be reduced by sensing the differentialvoltage on bitlines 118, which is indicative of its state, translatingthat differential voltage into a logic-lever signal.

In the exemplary embodiment, a READ operation is performed by enablingrow decoder 110, which selects a particular row. The charge on one ofthe bitlines 118 from each pair of bitlines on each column willdischarge through the enabled memory cell 103, representing the state ofthe active cells 103 on that column 105. Column decoder 122 enables onlyone of the columns, connecting bitlines 118 to an output. Senseamplifiers 124 provide the driving capability to source current to theoutput including input/output buffers. When sense amplifier 124 isenabled, the unbalanced bitlines 118 will cause the balanced senseamplifier to trip toward the state of the bitlines, and data will beoutput.

In general, a WRITE operation is performed by applying data to an inputincluding I/O buffers (not shown). Prior to the WRITE operation,bitlines 118 may be precharged to a predetermined value by prechargecells. The application of input data to the inputs tend to discharge theprecharge voltage on one of the bitlines 118, leaving one bitline logicHIGH and one bitline logic LOW. Column decoder 122 selects a particularcolumn 105, connecting bitlines 118 to the input, thereby dischargingone of the bitlines 118. The row decoder 110 selects a particular row,and the information on bitlines 118 will be written into cell 103 at theintersection of column 105 and row 106.

At the beginning of a typical internal timing cycle, precharging isdisabled. The precharging is not enabled again until the entireoperation is completed. Column decoder 122 and row decoder 110 are thenactivated, followed by the activation of sense amplifier 124. At theconclusion of a READ or a WRITE operation, sense amplifier 124 isdeactivated. This is followed by disabling decoders 110, 122, at whichtime precharge cells 120 become active again during a subsequentPRECHARGE cycle.

Power Reduction and Speed Improvement

In reference to FIG. 1, the content of memory cell 103 of memory block100 is detected in sense amplifier 124, using a differential linebetween the paired bitlines 118. It should be appreciated that thisarchitecture is not scalable. Also, increasing the memory block 100 mayexceed the practical limitations of the sense amplifiers 124 to receivean adequate signal in a timely fashion at the bitlines 118. Increasingthe length of bitlines 118 increases the associated bitline capacitanceand, thus, increases the time needed for a voltage to develop thereon.More power must be supplied to lines 104, 106 to overcome the additionalcapacitance.

In addition, it takes longer to precharge long bitlines under thearchitectures of the existing art, thereby reducing the effective devicespeed. Similarly, writing to longer bitlines 118, as found in theexisting art, requires more extensive current. This increases the powerdemands of the circuit, as well as reducing the effective device speed.

In general, reduced power consumption in memory devices such asstructure 100 in FIG. 1 can be accomplished by, for example, reducingtotal switched capacitance, and minimizing voltage swings. Theadvantages of the power reduction aspects of certain embodiments of thepresent invention can further be appreciated with the context ofswitched capacitance reduction and voltage swing limitation.

Switched Capacitance Reduction

As the bit density of memory structures increases, it has been observedthat single-core memory structures may have unacceptably large switchingcapacitances associated with each memory access. Access to any bitlocation within such a single-core memory necessitates enabling theentire row, or word line 106, in which the datum is stored, andswitching all bitlines 118 in the structure. Therefore, it is desirableto design high-performance memory structures to reduce the totalswitched capacitance during any given access.

Two well-known approaches for reducing total switched capacitance duringa memory structure access include dividing a single-core memorystructure into a banked memory structure, and employing divided wordline structures. In the former approach, it is necessary to activateonly the particular memory bank associated with the memory cell ofinterest. In the latter approach, localizing word line activation to thegreatest practicable extent reduces total switched capacitance.

Divided or Banked Memory Core

One approach to reducing switching capacitances is to divide the memorycore into separately switchable banks of memory cells. One example of amemory core 200 divided into banks is illustrated in FIG. 2. In theillustrated embodiment, the memory core includes two banks of memorycells, bank #0 and bank #1, generally designated 202 and 204respectively. The memory core 200 includes two local decoders 206 thatare communicatively coupled to each other and a global decoder 208 viaworld line High 210. Each local decoder 206 includes a local word lineHigh 210 that communicatively couples the decoder 206 to its associatedbank. Additionally, two bank lines 214 are shown communicatively coupledor interfaced to the local decoders 206. It should be appreciated that,in one embodiment, one bank line 214 is associated with each bank.

Typically, the total switched capacitance during a given memory accessfor banked memory cores is inversely proportional to the number of banksemployed. By judiciously selecting the number and placement of the bankunits within a given memory core design, as well as the type of decodingused, the total switching capacitance, and thus the overall powerconsumed by the memory core, can be greatly reduced. Banked design mayalso realize a higher product yield. The memory banks can be arrangedsuch that a defective bank is rendered inoperable and inaccessible,while the remaining operational banks of the memory core 200 can bepacked into a lower-capacity product.

However, banked designs may not be appropriate for certain applications.Divided memory cores demand additional decoding circuitry to permitselective access to individual banks. In other words, such dividedmemory cores may demand an additional local decoder 206, local bank line214 and local word line High 210 for example. Delay may occur as aresult. Also, many banked designs employ memory segments that are merelyscaled-down versions of traditional monolithic core memory designs, witheach segment having dedicated control, precharging, decoding, sensing,and driving circuitry. These circuits tend to consume much more power inboth standby and operational modes than their associated memory cells.Such banked structures may be simple to design, but the additionalcomplexity and power consumption can reduce overall memory componentperformance.

By their very nature, banked designs are not suitable for scaling-up toaccommodate large design requirements. Also, traditional banked designsmay not be readily adaptable to applications requiring a memory coreconfiguration that is substantially different from the underlying bankarchitecture (e.g., a memory structure needing relatively few rows oflong word lengths). Traditional bank designs are generally not readilyadaptable to a memory structure needing relatively few rows of very longword lengths.

Rather than resort to a top-down division of the basic memory structureusing banked memory designs, one or more embodiments of the presentinvention provide a hierarchical memory structure that is synthesizedusing a bottom-up approach. Hierarchically coupling basic memory moduleswith localized decision-making features that synergistically cooperateto dramatically reduce the overall power needs, and improve theoperating speed, of the structure. At a minimum, such a basichierarchical module can include localized bitline sensing.

Divided Word Line

Often, the bit-width of a memory component is sized to accommodate aparticular word length. As the word length for a particular designincreases, so do the associated word line delays, switched capacitance,power consumption, and the like. To accommodate very long word lines, itmay be desirable to divide core-spanning global word lines into localword lines, each consisting of smaller groups of adjacent, word-orientedmemory cells. Each local group employs local decoding and drivingcomponents to produce the local word lines when the global word line, towhich it is coupled, is activated. In long word length applications, theadditional overhead incurred by divided word lines can be offset byreduced word line delays.

Rather than resorting to the traditional top-down division of wordlines, certain embodiments of the invention herein include providing alocal word line to the aforementioned basic memory module, which furtherenhances the local decision making features of the module. As before, byusing a bottom-up approach to hierarchically couple basic memory modulesas previously described with the added localized decision-makingfeatures of local word lines according to the present invention,additional synergies maybe realized, which further reduce overall powerconsumption and signal propagation times.

Multiplexing

One alternative to a banked memory core design is to multiplex or muxthe memory cells. In other words, bits from different words are notstored sequentially. For example, in 2:1 muxing, bits from two words arestored in an alternating pattern. For example, if the number 1represents bits from a first word, while the number 2 represent bitsfrom a second word. During a READ or WRITE operation the mux selectswhich column it is looking at (i.e., the left or right bit). It shouldbe appreciated that muxing may save space. Banked designs without muxingrequire one sense amplifier for every two lines. In 2:1 muxing forexample, one sense amplifier is used for every four lines (i.e., onesense amplifier ties two sets of bitlines together). Muxing enablessense amps to be shared between muxed cells, which may increase thelayout pitch and area efficiency.

In general, muxing consumes more power than the banked memory coredesign. For example, to read a stored word, the mux accesses or enablesan entire row in the cell array, reading all the data stored therein,only sensing the data needed and disregarding the remainder.

Using a bottom-up approach to hierarchically couple basic memory moduleswith muxing according to an embodiment of the present invention,additional synergies are realized, reducing power consumption and signalpropagation times.

Voltage-Swing Reduction Techniques

Power reduction may also be achieved by reducing the voltage swingsexperienced throughout the structure. By limiting voltage swings, it ispossible to reduce the amount of power dissipated as the voltage at anode or on a line decays during a particular event or operation, as wellas to reduce the amount of power required to return the various decayedvoltages to the desired state after the particular event or operation,or prior to the next access. Two techniques to this end include usingpulsed word lines and sense amplifier voltage swing reduction.

Pulsed Word Lines

By providing a word line just long enough to correctly detect thedifferential voltage across a selected memory cell, it is possible toreduce the bitline voltage discharge corresponding to a READ operationof the selected cell. In some designs, by applying a pulsed signal tothe associated word line over a chosen interval, a sense amplifier isactivated only during that interval, thereby reducing the duration ofthe bitline voltage decay. These designs typically use some from ofpulse generator that produces a fixed-duration pulse. If the duration ofthe pulse is targeted to satisfy worst-case timing scenarios, theadditional margin will result in unnecessary bitline current draw duringnominal operations.

Therefore, it may be desirable to employ a self-timed, self-limitingword line device that is responsive to the actual duration of a givenREAD operation on a selected cell, and that substantially limits wordline activation during that duration. Furthermore, where a senseamplifier successfully completes a READ operation in less than a memorysystem clock cycle, it may also be desirable to have asynchronous pulsewidth activation, relative to the memory system clock. Certain aspectsof the present invention may provide a pulsed word line signal, forexample, using a cooperative interaction between local decoder and localcontroller.

Sense Amplifier Voltage Swing Reduction

In order to make large memory arrays, it is most desirable to keep thesize of an individual memory cell to a minimum. As a result, individualmemory cells generally are incapable of supplying a driving current toassociated input/output bitlines. Sense amplifiers typically are used todetect the value of the data stored in a particular memory cell and toprovide the current needed to drive the I/O lines.

In a sense amplifier design, there typically is a trade-off betweenpower and speed, with faster response times usually dictating greaterpower requirements. Faster sense amplifiers can also tend to bephysically larger, relative to low speed, low power devices.Furthermore, the analog nature of sense amplifiers can result in theirconsuming an appreciable fraction of the total power. Although one wayto improve the responsiveness of a sense amplifier is to use a moresensitive sense amplifier, any gained benefits are offset by theconcomitant circuit complexity which nevertheless suffers from increasednoise sensitivity. It is desirable, then, to limit bitline voltageswings and to reduce the power consumed by the sense amplifier.

In one typical design, the sense amplifier detects the smalldifferential signals across a memory cell, which is in an unbalancedstate representative of data value stored in the cell, and amplifies theresulting signal to logic level. Prior to a READ operation, the bitlinesassociated with a particular memory column are precharged to a chosenvalue. When a specific memory cell is enabled, a particular row in whichthe memory cell is located and a sense amplifier associated with theparticular column are selected. The charge on one of those bitlinesassociated with the memory cell is discharged through the enabled memorycell, in a manner corresponding to the value of the data stored in thememory cell. This produces an imbalance between the signals on thepaired bitlines, causing a bitline voltage swing.

When enabled, the sense amplifier detects the unbalanced signal and, inresponse, the usually balanced sense amplifier state changes to a staterepresentative of the value of the data. This state detection andresponse occurs within a finite period, during which a specific amountof power is dissipated. In one embodiment, latch-type sense amps onlydissipate power during activation, until the sense amp resolves thedata. Power is dissipated as voltage develops on the bitlines. Thegreater the voltage decay on the precharged bitlines, the more powerdissipated during the READ operation.

It is contemplated that using sense amplifiers that automatically shutoff once a sense operation is completed may reduce power. Aself-latching sense amplifier for example turns off as soon as the senseamplifier indicates the sensed data state. Latch type sense amps requirean activation signal which, in one embodiment is generated by a dummycolumn timing circuit. The sense amp drives a limited swing signal outof the global bitlines to save power.

Redundancy

Memory designers typically balance power and device area concernsagainst speed. High-performance memory components place a severe strainon the power and area budgets of associated systems, particularly wheresuch components are embedded within a VLSI system such as a digitalsignal processing system. Therefore, it is highly desirable to providememory subsystems that are fast, yet power- and area-efficient.

Highly integrated, high performance components require complexfabrication and manufacturing processes. These processes may experienceunavoidable parameter variations which can impose unwanted physicaldefects upon the units being produced, or can exploit designvulnerabilities to the extent of rendering the affected units unusableor substandard.

In a memory structure, redundancy can be important, because afabrication flaw, or operational failure, of even a single bit cell, forexample, may result in the failure of the system relying upon thatmemory. Likewise, process invariant features may be needed to insurethat the internal operations of the structure conform to precise timingand parametric specifications. Lacking redundancy and process invariantfeatures, the actual manufacturings yield for a particular memory areparticularly unacceptable when embedded within more complex systems,which inheritently have more fabrication and manufacturingvulnerabilities. A higher manufacturing yield translates into lowerper-unit costs, while a robust design translates into reliable productshaving lower operational costs. Thus, it is highly desirable to designcomponents having redundancy and process invariant features whereverpossible.

Redundancy devices and techniques constitute other certain preferredaspects of the invention herein that, alone or together, enhance thefunctionality of the hierarchical memory structure. The previouslydiscussed redundancy aspects of the present invention can render thehierarchical memory structure less susceptible to incapacitation bydefects during fabrication or operation, advantageously providing amemory product that is at once more manufacturable and cost-efficient,and operationally more robust.

Redundancy within a hierarchical memory module can be realized by addingone or more redundant rows, columns, or both, to the basic modulestructure. Moreover, a memory structure composed of hierarchical memorymodules can employ one or more redundant modules for mapping to failedmemory circuits. A redundant module may provide a one-for-onereplacement of a failed module, or it can provide one or more memorycell circuits to one or more primary memory modules.

Memory Module with Hierarchical Functionality

The modular, hierarchical memory architecture according to oneembodiment of the present invention provides a compact, robust,power-efficient, high-performance memory system having, advantageously,a flexible and extensively scalable architecture. The hierarchicalmemory structure is composed of fundamental memory modules or blockswhich can be cooperatively coupled, and arranged in multiplehierarchical tiers, to devise a composite memory product havingarbitrary column depth or row length. This bottom-up modular approachlocalizes timing considerations, decision-making, and power consumptionto the particular unit(s) in which the desired data is stored.

Within a defined design hierarchy, the fundamental memory subsystems orblocks may be grouped to form a larger memory structure, that itself canbe coupled with similar memory structures to form still larger memorystructures. In turn, these larger structures can be arranged to create acomplex structure, including a SRAM module, at the highest tier of thehierarchy. In hierarchical sensing, it is desired to provide two or moretiers of bit sensing, thereby decreasing the READ and WRITE time of thedevice, i.e., increasing effective device speed, while reducing overalldevice power requirements. In a hierarchical design, switching andmemory cell power consumption during a READ/WRITE operation arelocalized to the immediate vicinity of the memory cells being evaluatedor written, i.e., those memory cells in selected memory subsystems orblocks, with the exception of a limited number of global word lineselectors, sense amplifiers, and support circuitry. The majority ofsubsystems or blocks that do not contain the memory cells beingevaluated or written generally remain inactive.

Alternate embodiments of the present invention provide a hierarchicalmemory module using local bitline sensing, local word line decoding, orboth, which intrinsically reduces overall power consumption and signalpropagation, and increases overall speed, as well as increasing designflexibility and scalability. Aspects of the present inventioncontemplate apparatus and methods which further limit the overall powerdissipation of the hierarchical memory structure, while minimizing theimpact of a multi-tier hierarchy. Certain aspects of the presentinvention are directed to mitigate functional vulnerabilities that maydevelop from variations in operational parameters, or that related tothe fabrication process.

Hierarchical Memory Modules

In prior art memory designs, such as the aforementioned banked designs,large logical memory blocks are divided into smaller, physical modules,each having the attendant overhead of an entire block of memoryincluding predecoders, sense amplifiers, multiplexers, and the like. Inthe aggregate, such memory blocks would behave as an individual memoryblock. However, using the present invention, SRAM memory modules ofcomparable, or much larger, size can be provided by couplinghierarchical functional subsystems or blocks into larger physical memorymodules of arbitrary number of words and word length. For example,existing designs that aggregate smaller memory modules into a singlelogical modules usually require the replication of the predecoders,sense amplifiers, and other overhead circuitry that would be associatedwith a single memory module.

According to the present invention, this replication is unnecessary, andundesirable. One embodiment of the present invention comprehends localbitline sensing, in which a limited number of memory cells are coupledwith a single local sense amplifier, thereby forming a basic memorymodule. Similar memory modules are grouped and arranged to form blocksthat, along with the appropriate circuitry, output the local senseamplifier signal to the global sense amplifier. Thus, the bitlinesassociated with the memory cells in the block are not directly coupledwith a global sense amplifier, mitigating the signal propagation delayand power consumption typically associated with global bitline sensing.In this approach, the local bitline sense amplifier quickly andeconomically sense the state of a selected memory cell in a block andreports the state to the global sense amplifier.

In another embodiment of the invention herein, providing a memory block,a limited number of memory cells, among other units. Using local wordline decoding mitigates the delays and power consumption of global wordline decoding. Similar to the local bitline sensing approach, a singleglobal word line decoder can be coupled with the respective local wordline decoders of multiple blocks. When the global decoder is activatedwith an address, only the local word line decoder associated with thedesired memory cell of a desired block responds, activating the memorycell. This aspect, too, is particularly power-conservative and fast,because the loading on the global line is limited to the associatedlocal word line decoders, and the global word line signal need bepresent only as long as required to trigger the relevant local wordline. In yet another embodiment of the present invention, a hierarchicalmemory block employing both local bitline sensing and local word linedecoding is provided, which realizes the advantages of both approaches.Each of the above embodiments among others, is discussed below.

Synchronous Controlled Self-Timed SRAM

One embodiment of a 0.13 μm SRAM module, generally designated 300, isillustrated in FIGS. 3A and 3B. It should be appreciated that, while a0.13 μm SRAM module is illustrated, other sized SRAM modules arecontemplated. The illustrated SRAM embodiment comprises a hierarchicalmemory that breaks up a large memory into a two-dimensional array ofblocks. In this embodiment, a row of blocks is designated a row blockwhile a column of blocks is designated a column block. A pair ofadjacent row blocks 302 and column blocks 304 is illustrated.

It should be appreciated that the terms row blocks and block columns arearbitrary designations that are assigned to distinguish the blocksextending in one direction from the blocks extending perpendicularthereto, and that these terms are independent of the orientation of theSRAM 300. It should also be appreciated that, while four blocks aredepicted, any number of column and row blocks are contemplated. Thenumber of blocks in a row block may generally range anywhere from 1 to16, while the number of blocks in a column block may generally rangeanywhere from 1 to 16, although larger row and column blocks arecontemplated.

In one embodiment, a block 306 comprises at least four entities: (1) oneor more cell arrays 308; (2) one or more local decoders 310(alternatively referred to as “LxDEC 710”); (3) one or more local senseamps 312 (alternatively referred to as “LSA 712”); and (4) one or morelocal controllers 314 (alternatively referred to as “LxCTRL 714”). In analternative embodiment, the block 306 may include clusters as describedbelow.

SRAM 300 illustrated in FIGS. 3A and 3B includes two local predecoders316 (alternatively referred to as “LxPRED”), three global decoders 318(alternatively referred to as “GxDEC”), a global predecoder 320(alternatively referred to as “GxPRED”), two global controllers 322(alternatively referred to as “GxCTR”), and two global sense amps 324(alternatively referred to as “GSA 724”) in addition to the illustratedblock 306 comprising eight cell arrays 308, six local decoders 310,eight local sense amps 312, and two local controllers 314. It should beappreciated that one embodiment comprise one local sense amp (and in oneembodiment one 4:1 mux) for every four columns of memory cell, eachillustrated global controller comprises a plurality of globalcontrollers, one global controller for each local controller, and eachillustrated local controller comprises a plurality of local controllers,one for each row of memory cells.

An alternative embodiment of block 306 comprising only four cell arrays308, two local decoders 310, two local sense amps 312, and one localcontroller 314 is illustrated in FIG. 4. Typically, the blocks range insize from about 2 Kbits to about 150 Kbits.

In one embodiment, the blocks 306 may be broken down further intosmaller entities. One embodiment includes an array of sense ampsarranged in the middle of the cell arrays 308, dividing the cell arraysinto top and bottom sub-blocks as discussed below.

It is contemplated that, in one embodiment, the external signals thatcontrol each block 300 are all synchronous. That is, the pulse durationof the control signals are equal to the clock high period of the SRAMmodule. Further, the internal timing of each block 300 is self-timed. Inother words the pulse duration of the signals are dependent on abit-line decay time and are independent of the clock period. This schemeis globally robust to RC effects, locally fast and power-efficient asprovided below

Memory Cell

In one embodiment the cell arrays 308 of the SRAM 300 comprises aplurality of memory cells as illustrated in FIG. 5, where the size ofthe array (measured in cell units) is determined by rows×cols. Forexample, a megabit memory cell array comprises a 1024×1024 memory cells.One embodiment of a memory cell used in the SRAM cell array comprises asix-transistor CMOS cell 600A (alternatively referred to as “6T cell”)is illustrated in FIG. 6A. In the illustrated embodiment, 6T cell 600includes transistors 601 a, 601 b, 601 c and 601 d.

Each 6T cell 600 interfaces to a local wordline 626 (alternativelyreferred to as lwlH), shared with all other 6T cells in the same row ina cell array. A pair of local bitlines, designated bit and bit_n andnumbered 628 and 630 respectively, are shared with all other 6T cells600 in the same column in the cell array. In one embodiment, the localwordline signal enters each 6T cell 600 directly on a poly line thatforms the gate of cell access transistors 632 and 634 as illustrated. Ajumper metal line also carries the same local wordline signal. Thejumper metal line is shorted to the poly in strap cells that areinserted periodically between every 16 or 32 columns of 6T cells 600.The poly in the strap cells is highly resistive and, in one embodimentof the present invention, is shunted by a metal jumper to reduceresistance.

In general, the 6T cell 600 exists in one of three possible states: (1)the STABLE state in which the 6T cell 600 holds a signal valuecorresponding to a logic “1” or logic “0”; (2) a READ operation state;or (3) a WRITE operation state. In the STABLE state, 6T cell 600 iseffectively disconnected from the memory core (e.g., core 102 in FIG.1). In one example, the bit lines, i.e., bit and bit_n lines 628, 630respectively, are precharged HIGH (logic “1”) before any READ or WRITEoperation takes place. Row select transistors 632, 634 are turned offduring precharge. Local sense amplifier block (not shown but similar toLSA 712) is interfaced to bit line 628 and bit_n line 630, similar toLSA 712 in FIGS. 3A, 3B and 4, supply precharge power.

A READ operation is initiated by performing a PRECHARGE cycle,precharging bit line 628 and bit_n line 630 to logic HIGH, andactivating LwLH 626 using row select transistors 632, 634. One of thebitlines discharges through 6T cell 600, and a differential voltage issetup between bit line 628 and bit_n line 630. This voltage is sensedand amplified to logic levels.

A WRITE operation to 6T cell 600 is carried out after another PRECHARGEcycle, by driving bitlines 628, 630 to the required state, correspondingto write data and activating lwlH 626. CMOS is a desirable technologybecause the supply current drawn by such an SRAM cell typically islimited to the leakage current of transistors 601 a-d while in theSTABLE state.

FIG. 6B illustrates an alternative representation of the 6T cellillustrated in FIG. 6A. In this embodiment, transistors 601 a, 601 b,601 c and 601 d are represented as back-to-back inventors 636 and 638respectively as illustrated.

Local Decoder

A block diagram of one embodiment of a SRAM module 700, similar to theSRAM module 300 of FIGS. 3A, 3B and 4, is illustrated in FIG. 7. Thisembodiment includes a one-dimensional array of local x-decoders or LxDEC710 similar to the LxDEC 310. The LxDEC 710 array is physically arrangedas a vertical array of local x-decoders located proximate the cell array708. The LxDEC 710 interfaces with or is communicatively coupled to aglobal decoder or GxDEC 718.

In one embodiment, the LxDEC 710 is located to the left of the cellarray 708. It should be appreciated that the terms “left,” or “right,”“up,” or “down,” “above,” or “below” are arbitrary designations that areassigned to distinguish the units extending in one direction from theunits extending in another direction and that these terms areindependent of the orientation of the SRAM 700. In this embodiment,LxDEC 710 is in a one-to-one correspondence with a row of the cell array708. The LxDEC 710 activates a corresponding local wordline or lwlH 726not shown of a block. The LXDEC 710 is controlled by, for example, WlH,bnkL and BitR 742 signals on their respective lines.

Another embodiment of LxDEC 710 is illustrated in FIG. 8. In thisembodiment, each LxDEC 710 in a block interfaces to a unique globalwordline 750 (alternatively referred to as “WIH”) corresponding to thememory row. The global WIH 750 is shared with other correspondingLxDEC's 710 in the same row block using lwlH 750. LxDEC 710 onlyactivates the local wordline 726, if the corresponding global wordline750 is activated. It should be appreciated that a plurality of cells 754similar to the 6T cells discussed previously, are communicativelycoupled to the lwlH 726 as illustrated.

In the embodiment illustrated in FIG. 8, every LxDEC 710 in the top orbottom of a sub-block shares the same bank line (alternatively referredto as “bnk Sol H”). It should be appreciated that there are separatebnkL_bot 756 and bnkL_top 758 lines for the bottom and top sub-blocks,respectively. LxDEC 710 will only activate lwlH 726 if this line isactive. The bank lines are used to selectively activate different blockswithin the same row block and synchronize the proper access timing. Forexample, during a READ operation, the bank line will activate as earlyas possible to begin the read operation. During a WRITE operation forexample, bnkL is synchronized to the availability of the data on thelocal bitlines.

Every LxDEC 710 in the embodiment illustrated in FIG. 8 shares the samebitR line 760. This line is precharged to VDD in the memory idle state.When bitR 760 approaches VDD/2 (i.e., one half of VDD), it signals theend of a memory access and causes the LxDEC 710 to de-activate lwlH 726.The bitR signal line 760 is constructed as a replica to the bitlines(i.e, in this embodiment bit line 728 and bit_n line 730 are similar tobit line 628 and bit_n line 630 discussed previously) in the cell array,so the capacitive loading of the bitR 760 line is the same per unitlength as in the cell array. In one embodiment, a replica local decoder,controlled by bnkL, fires the lwlRH. In this embodiment, the lwlRH is asynchronization signal that controls the local controller. The lwlRH mayfire every time an associated subblock (corresponding to a wlRH) isaccessed.

In one embodiment, a global controller initiates or transmits a READ orWRITE signal. The associated local controller 714 initiates or transmitsan appropriate signal based on the signal transmitted by the globalcontroller (not shown). The local controller pulls down bitR line 760from LxDEC 710 when the proper cell is READ from or WRITTEN to, savingpower. When the difference between bit line 728 and bit_n line 730 ishigh enough to trigger the sense amp portion, the lwlH 726 is turned offto save power. A circuit diagram of one embodiment of a local x-decodersimilar to LxDEC 710 is illustrated in FIG. 9.

Local Sense-Amps

One embodiment of the SRAM module includes a one-dimensional array oflocal sense-amps or LSA's 712 illustrated in FIGS. 10 and 11, where theoutputs of the LSA 712 are coupled to the GSA 724 via line 762. In oneembodiment, the outputs of the LSA's are coupled to the GSA via at leasta pair of gbit and gbit_n lines. FIG. 12A illustrates one embodiment ofLSA 712 comprising a central differential cross-coupled amplifier core764, comprising two inverters 764A and 764B. The senseH lines 766, andclusterL 798, are coupled to the amplifier core through transistor 771.

The LSA's 764 are coupled to one or more 4:1 mux's 772 and eight pairsof muxL lines 768A, four muxLs 768A located above and four 768B (bestviewed in FIG. 7) located below the amplifier core 764. In theillustrated embodiment, each of the bitline multiplexers 772 connects acorresponding bitline pair and the amplifier core 764. The gbit andgbit_n are connected to the amplifier core through a PMOS transistors(transistors 770 for example). When a bitline pair is disconnected fromthe amplifier core 764, the bitline multiplexer 772 actively equalizesand precharges the bitline pair to VDD.

FIG. 12B illustrates a circuit diagram of an amplifier core 764 havingtwo inverters 764A and 764B, where each inverter 764A and 764B iscoupled to a SenseH line 766 and cluster line 798 through a transistorNMOS 771. Only one sense H cluster lines are illustrated. In theillustrated embodiment, each of the inverters 764A and 764B arerepresented as coupled PMOS and NMOS transistor as is well known in theart. FIG. 12C illustrates a schematic representation of the amplifiercore of FIG. 12B (similar to the amplifier core of FIG. 12A).

In one embodiment illustrated in FIG. 13, the sense-amp array comprisesa horizontal array of sense-amps 713 located in the middle of the cellarray 708, splitting the cell array into top 708A and bottom 708Bsub-blocks as provided previously. In this embodiment, the width of asingle LSA 712 is four times the width of the cell array, while thenumber of LSA 712 instances in the array is equal to the number ofcols/4. That is, each LSA 712 (and in one embodiment one 4:1 mux) is ina one-to-one correspondence with four columns of the cell array andinterfaces with the corresponding local bitline-pairs of the cell array708 in the top and bottom sub-blocks 708A, 708B. This arrangement isdesignated 4:1 local multiplexing (alternatively referred to as “4:1local muxing”). It should be appreciated that the bitline-pairs of thebottom sub-block 708B are split from the top sub-block 708A, therebyreducing the capacitive load of each bitline 729 by a factor of two,increasing the speed of the bitline by the same factor and decreasingpower. One embodiment of the 4:1 mux plus precharge is illustrated inFIGS. 10 and 12 and discussed in greater detail below.

It is currently known to intersperse power rails 774 (shown in phantom)between pairs of bitlines to shield the bitline pairs from nearby pairs.This prevents signals on one pair of bitlines from affecting theneighboring bitline pairs. In this embodiment, when a pair of bitlines729 (bit and bit_n, 728, 730) is accessed, all the neighboring bitlinesare precharged to VDD by the 4:1 mux as illustrated in FIG. 12.Precharging the neighboring bitlines, eliminates the need for shields toisolate those bitlines. This means that it is not necessary to isolatepairs of bitlines from each other using with interspersed power rails774. This allows for a larger bitline pitch in the same total width, andtherefore less capacitance, less power, and higher speed.

The LSA 712 interfaces with a pair of global bitlines, designated gbit776 and gbit_n 778 via a PMOS transistors 770 as illustrated in FIG.12A. Two PMOS transistors are illustrated, but any number iscontemplated. In one embodiment, the global bitlines run vertically inparallel with the local bitlines. The global bitlines are shared withthe corresponding local sense-amps 712 in other blocks in the samecolumn block. In one embodiment, the local bitlines and global bitlinesare routed on different metal layers. Because there are four times fewerglobal bitlines than local bitlines, the global bitlines are physicallywider and placed on a larger pitch. This significantly reduces theresistance and capacitance of the long global bitlines, increasing thespeed and reliability of the SRAM module. The PMOS transistors 770isolate global bitlines 776, 778 from the sense amp.

One embodiment of the bitline multiplexer or 4:1 mux 772 is illustratedin FIG. 14. In this embodiment, the 4:1 mux 772 comprises a prechargeand equalizing portion or device 773 and two transmission gates perbit/bit_n pair. More specifically, 4:1 muxing may comprise 8transmission gates and 4 precharge and equalizers, although only 4transmission gates and 2 precharge and equalizers are illustrated.

In the illustrated embodiment, each precharge and equalizing portion 773of the 4:1 mux comprises three PFet transistors 773A, 773B and 773C. Inthis embodiment, the precharge portion comprises PFet transistors 773Aand 773B. The equalizing portion comprises PFet transistor 773D.

In the illustrated embodiment, each transmission gate comprises one NFet777A and one PFet 777B transistor. While a specific number andarrangement of PMOS and NMOS transistors are discussed, differentnumbers and arrangements are contemplated. The precharge and equalizingportion 773 is adapted to precharge and equalize the bitlines 728, 739as provided previously. The transmission gate 775 is adapted to passboth logic “1”'s and “0”'s as is well understood in the art. The NFettransistors, 777A and 777B for example, may pass signals during a WRITEoperation, while the PFet transistors 779A and 779B may pass signalsduring a READ operation.

FIGS. 15 and 16 illustrate embodiments of the 2:1 mux 772 coupled to theamplifier core 764 of the LSA. FIG. 15 also illustrates an alternaterepresentation of the transmission gate. Here, four transmission gates775A, 775B, 775C and 775D are illustrated coupled to the inverters 764Aand 764B of the inverter core. In one embodiment of the presentinvention, eight transmission gates are contemplated for each LSA, twofor each bitline pair.

FIG. 16 illustrates the precharge and equalizing portion 773 of the 2:1coupled to the transmission gates 775A and 775B of mux 772, which inturn is coupled to the amplifier core. While only one precharge andequalizing portion 773 is illustrated, it is contemplated that a secondprecharge and equalizing portion 773 is coupled to the transmissiongates 775C and 775D.

In one embodiment illustrated in FIG. 7, the LSA 712 is controlled bythe following set of lines, or signals on those lines, that are sharedacross the entire LSA 712 array: (1) muxL_bot 768B; (2) muxL_top 768A;(3) senseH 766; (4) genL 780; and (5) lwlRH 782. In one embodiment ofthe SRAM module, the LSA 712 selects which of the local bitlines to useto initiate or access the cell array 708. The local bitlines comprise 8pairs of lines, 4 pairs of mux lines 768B that interface to the bottomsub-block 708B (alternatively referred to as “muxL_bot 765B<0:3>”) and 4pairs of mux lines 768A that interface to the top sub-block 708A(alternatively referred to as “muxL_top 765A<0:3>”). The LSA 712 selectswhich of the 8 pairs of local bitlines to use for the current access.The LSA 712 maintains any local bitline not selected for access in aprecharged and equalized state. In one embodiment, the LSA 712 keeps thenon-selected bitlines precharged to VDD.

The LSA 712 also activates the amplifier portion of the sense-amp 713using a sense enable line 766 or signal on the line (alternativelyreferred to as “senseH 766”) connected to transistor 773. Thisactivation signal is distributed into four separate signals, each signaltapping one out of every four local sense-amps. In one embodiment, thelocal controller 714 may activate all the senseH lines 766simultaneously (designated “1:1 global multiplexing” or “1:1 globalmux”) because every sense-amp 713 is activated by senseH lines 766 foreach access. Alternately, the local controller may activate the senseHlines 766 in pairs (designated “2:1 global multiplexing” or “2:1 globalmux”) because every other sense-amp 713 is activated by senseH 766 foreach access. Additionally, the LSA 712 may activate the senseH 766 lines766 individually (designated “4:1 global multiplexing” or “4:1 globalmux”), because every fourth sense-amp is activated for each access. Itshould be appreciated that connecting or interfacing the senseH 766 toevery fourth enabled transistor in 4:1 global multiplexing provides formore configurable arrangements for different memory sizes.

The LSA 712, in one embodiment, exposes the sense-amps 713 to the globalbitlines. The LSA 712 activates or initiates the genL line 780, thusexposing the sense amps 713 to the gbit and gbit_n.

In one embodiment, the LSA 712 replicates the poly local wordlinerunning through each row of each block. This replicated line is referredto as a dummy poly line 782 (alternatively referred to as “lwlRH 782”).In this embodiment, the lwlRH line 782 forms the gate of dummytransistors that terminate each column of the cell array 708. Each dummytransistor replicates the access transistor of the 6T SRAM cell. Thecapacitive load of this line is used to replicate the timingcharacteristics of an actual local wordline.

It is contemplated that, in one embodiment, the replica lwlRH line 782also extends to the metal jumper line (not shown). The replica jumperline has the same width and neighbor metal spacing as any local wordlinejumper in the cell array. This line is used strictly as a capacitiveload by the local controller 714 and does not impact the function of theLSA 712 in any way. More specifically, the replica jump line is adaptedto reduce the resistance of the lwlRH poly line similar to the metalshunt line as provided earlier. A circuit diagram of one embodiment ofan LSA 712 is illustrated in FIG. 17.

Local Controller

In one embodiment, each block has a single local controller or LxCTRL714 as illustrated in FIGS. 7 and 18 that coordinates the activities ofthe local x-decoders 710 and sense-amps 713. In this embodiment, theLxCTRL 714 coordinates such activities by exercising certain linesincluding: (1) the bitR 760; (2) the bnkL_bot 756; (3) the bnkL_top 758;(4) the muxL_bot 765B; (5) the muxL_top 765A; (6) the senseH 766; (7)the genL 780; and (8) the lwlRH 782 control lines as illustrated in FIG.7. Each of these lines is activated by a driver and control logiccircuit in the LxCTRL circuit 714. In one embodiment, all these linesare normally inactivate when the SRAM module is in the idle state exceptfor the genL line 780. The genL line 780 is active in the idle state.The LxCTRL 714 circuit is in turn activated by external Vertical andHorizontal signals. Vertical signals include: (1) lmuxL 784; (2) gmuxL786; (3) rbankL 788; (4) gbitR 760; and (5) wbankL 792 signals.Horizontal signals include: (1) wlRH 794; (2) blkSeIH_bot 756; and (3)blkSeIH_top 758.

In one embodiment, all LxCTRL 714 circuits in the same column blockshare the Vertical signals. In this embodiment, the LxCTRL 714 in eachblock interfaces with four local mux lines 784 (alternatively referredto as “lmuxL<0:3>” or “lmuxl”). Only one of the four lmuxL lines 768 isactive at any time. The LxCTRL 714 initiates or activates one lmuxLlines 768 to access a cell array 708, selecting one of the four cellarray columns interfaced to each LSA 712 for access.

In one embodiment, similar to that discussed previously, the LSA 712 mayactivate the senseH 766 signals individually (i.e., 4:1 globalmultiplexing). In this embodiment, the LxCTRL 714 in each blockinterfaces with four global mux lines 786 (alternatively referred to as“gmuxL<0:3>” or “gmuxl”). It should be appreciated that only one ofthese four gmuxL lines 768 is active at any time, selecting oractivating one out of every four global bitlines for access. In oneembodiment the LSA 712 activates the senseH lines 766 in pairs (i.e.,2:1 global multiplexing). In this embodiment only two of the four gmuxLlines 768 are active at any time, selecting one out of every two globalbitlines for access. For 1:1 global muxing, all four gmuxL lines 786 arealways active, selecting all the global bitlines for access.

All LxCTRL circuits 714 in the same column block share the same readbank lines 788 or signals on the lines (alternatively designated“rbankL”). The rbankL line 788 is activated when a READ operation isrequested (i.e., data is read from the block). At the end of the READoperation, the global bitlines selected by the gmuxL line 768 s 786contain limited swing differential signals. This limited swingdifferential signals represent the stored values in the cells selectedby the lwlH line 726 and the lmuxL lines 784.

In one embodiment, a global bit replica line 790 or signal on the lineis shared with all the LxCTRL circuits 714 in the same column block(alternatively designated “gbitR”). The gbitR line 760 is maintainedexternally at VDD when the SRAM memory is idle. The gbitR line 760 ismade floating when a READ access is initiated. The LxCTRL 714 dischargesthis signal to VSS when a READ access request is concluded synchronouswith the availability of READ data on gbit/gbit_n.

During a WRITE operation, the LxCTRL 714 activates write bank lines 792or signals on the line (alternatively referred to as “wbnkL”). Limitedswing differential signals are present on the global bitlines when thewbnkL line 792 is activated. The limited swing differential signalsrepresent the data to be written.

It should be further appreciated that, in one embodiment, all the LxCTRLcircuits 714 in the same row block column share the Horizontal signals.In one embodiment, all the LxCTRL 714 circuits share a replica of theglobal wordline wlH line 794 (alternatively referred to as “wlRH”) thatruns through each row of the memory. The physical layout of the wlRHline 794 replicates the global wordline in each row with respect tometal layer, width, and spacing. Thus the capacitive loading of the wlRH794 and the global wlH signal are the same. On every memory access, thewlRH line 794 is activated simultaneously with a single global wlH forone row in the block.

The LxCTRL 714 indicates to the block whether the bottom or topsub-block 706B, 706A is being accessed using either the bikSelH_bot 756or bikSelH_top 758 line or signals on the lines. Either one of theselines is active upon every memory access to the block, indicatingwhether the bottom sub-block 706B or top sub-block 706A transmissiongates in the LSA 712 should be opened. A circuit diagram for oneembodiment of the local controller is illustrated in FIG. 19.

Synchronous Control of the Self-Timed Local Block

One embodiment of the present invention includes one or more globalelements or devices that are synchronously controlled while one or morelocal elements are asynchronously controlled (alternatively referred toas “self-timed”). It should be appreciated that the term synchronouscontrol means that these devices are controlled or synchronous with aclock pulse provided by a clock or some other outside timing device. Oneadvantage to having a synchronous control of elements or devices on theglobal level is those elements, which are affected by resistance, may beadjusted.

For example, slowing or changing the clock pulse, slows or changes thesynchronous signal. Slowing or changing the synchronous signal slows orchanges those devices or elements controlled by the synchronous signals,providing more time for such devices to act, enabling them to completetheir designated function. In one embodiment, the global controller issynchronous. In another embodiment, the global controller, the globaldecoder and the global sense amps are synchronous.

Alternatively, the local devices or elements are asynchronous controlledor self-timed. The self-timed devices are those devices where there islittle RC effects. Asynchronous controlled devices are generally faster,consume less power. In one embodiment, the local block, generallyincluding the local controller, local decoder, local sense amps, thesense enable high and the cell arrays, are asynchronously controlled.

Read Cycle Timing

Cycle timing for a read operation in accordance with one embodiment ofthe present invention includes the global controller transmitting orproviding a high signal and causing LwlH line to fire and one or morememory cells is selected. Upon receiving a signal on the LwlH line, oneor more of the bit/bit_n line pairs are exposed and decay (alternativelyreferred to as the “integration time”). At or about the same time as thebit/bit_n begin to decay, bitR begins to decay (i.e. upon receiving ahigh signal on the lwlRH line). However, the bitR decays approximately 5to 6 times faster than the bit/bit_n, stopping integration before thebit/bit_n decays completely (i.e., sensing a swing line voltage) andinitiates amplifying the voltage.

BitR triggers one or more of the SenseH lines. Depending on the muxing,all four SenseH lines fire (1:1 muxing), two SenseH lines fire (2:1muxing) or one SenseH line fires (4:1 muxing).

After the SenseH line signal fires, the sense amp resolves the data, theglobal enable Low or genL line is activated (i.e., a low signal istransmitted on genL). Activating the genL line exposes the local senseamp to the global bit and bit_n. The genL signal also starts the decayof the signal on the gbitR line. Again, the gbitR signal decays about 5to 6 times faster than gbit signal, which turns off the pull down of thegbit. In one embodiment gbitR signal decays about 5 to 6 times fasterthan gbit signal so that signal on the gbit line only decays to about10% of VDD before it is turned off.

The signal on gbitR shuts off the signal on the SenseH line and triggersthe global sense amp. In other words the signal on the gbitR shuts offthe local sense amp, stopping the pull down on the gbit and gbit_nlines. In one embodiment, the SenseH signal is totally asynchronous.

The cycle timing for a READ operation using one embodiment of thepresent invention (similar to that of FIG. 7) is illustrated in FIG. 20.During the READ operation, one of the four lmuxL<0:3> lines 784 areactivated, selecting one of the four cell array columns supported byeach LSA 712. One, two, or four gmuxL<0:3> lines 786 are activated toselect every fourth, every second, or every global bitline for access,depending on the global multiplexing option (i.e., 4:1, 2:1 or 1:1muxing

Either the bikSeIH_bot 756 or bikSeIH_top 758 is activated to indicateto the block that the bottom or top sub-block 706B, 706A respectively isbeing accessed. The rbankL line 788 line is activated to request a readoperation from the block. The wlH line is activated for the memory rowthat is being accessed, while the wlRH line 794 is activatedsimultaneously for all the blocks in the row block containing the memoryrow.

The LxCTRL 714 deactivates the genL line 780 to isolate the localsense-amps from the global bitlines. The LxCTRL 714 activates the bnkLline to signal the LxDEC 710 to activate a local wordline. The LxCTRL714 activates one of the four muxL<0:3> line corresponding to theactivated muxL signal. This causes the LSA 712 to connect one of thefour cell columns to the sense-amp amplifier core 762. The LxDEC 710corresponding to the activated global wordline activates the localwordline. Simultaneously, the LxCTRL 714 activates the lwlRH line 794782. All the cells in the row corresponding to the activated localwordline begin to discharge one bitline in each bitline paircorresponding to the stored value of the 6T cell.

After a predetermined period of time a sufficient differential voltageis developed across each bitline pair. In one example, a differentialvoltage of about 100 mV is sufficient. It should be appreciated thatthis predetermined period of time is dependant on process corner,junction temperature, power supply, and the height of the cell array.

Simultaneously, the lwlRH 782 signal causes the LxCTRL 714 to dischargethe bitR line 760 with an NMOS transistor that draws a certain currentat a fixed multiple of the cell current. The bitR 760 line thereforedischarges at a rate that is proportional to the bitline discharge rate.It should be appreciated that the constant of proportionality isinvariant (to a first order) with regards to process corner, junctiontemperature, power supply, and the height of the cell array 708.

When the bitR signal 760 crosses a predetermined threshold, the LxDEC710 deactivates the local wordline and the 6T cells stop dischargingthrough the bitlines. In this manner, a limited swing differentialvoltage is generated across the bitlines independent (to a first order)of the process corner, junction temperature, power supply, and theheight of the cell array. In one example, a differential voltage ofabout 100 mV is sufficient. Simultaneously, the LxCTRL 714 deactivatesthe muxL line 768 so that the corresponding bitlines are disconnectedfrom the amplifier core 762 and are equalized and precharged.

At the same time that the LxCTRL 714 deactivates the muxL line 768, theLxCTRL 714 activates the senseH lines 766 and, depending on the globalmultiplexing, the amplifier core 762 rapidly amplifies the differentialsignal across the sensing nodes. As soon as the amplifier core 762 hasstarted to sense the differential signal, the LxCTRL 714 activates thegenL line 780 so that the local sense-amps are connected to the globalbitlines. The amplifier core 762, depending on the global multiplexing,continues to amplify the differential signals onto the global bitlines.The LxCTRL 714 discharges the gbitR 760 signal to signal the end of theREAD operation. When the gbitR 760 signal crosses a predeterminedthreshold, the LxCTRL 714 deactivates the senseH 766 signals and theamplifier core 762 of the LSA array stop amplifying. This results in alimited-swing differential signal on the global bitlines representativeof the data read from the cells.

When the wlRH line 794 is deactivated, the LxCTRL 714 precharges thebitR line 760 to prepare for the next access. When the rbankL line 788is deactivated, the LxCTRL 714 deactivates the bnkL line to prepare forthe next access.

Write Cycle Timing

Cycle timing for a write operation in accordance with one embodiment ofthe present invention includes the global controller and global senseamp receiving data or a signal transmitted on wbnkL, transmitting orproviding a high signal on an LwlH line and selecting one or more memorycells. The write operation is complete when the local word line is high.

Data to be written into a memory cell is put onto the gbit linesynchronously with wbnkL. In this embodiment, the wbnkL acts as thegbitR line in the write operation. In this embodiment, the wbnkL pullsdown at the same time as gbit but about 5 to 6 times faster.

The low signal on the wbnkL line triggers a signal on the SenseH and alocal sense amp. In other words, genL goes high, isolating the localsense amp. A signal on the wbnkL also triggers bnkL, so that lwlH goeshigh when wlH arrives. After the signal on the SenseH is transmitted,the lmux switch opens, so that data from the local sense amplifier ontothe local bitlines. BitR is pulled down. In one embodiment, bitR ispulled down at the same rate as bit. In other words bitR and bit arepull down at the same rate storing a full BDT. LwIL goes high andoverlaps the data on the bitlines. BitR turns off LwlH and closes thelmux switch and SenseH.

The cycle timing for a WRITE operation using one embodiment of thepresent invention is illustrated in FIG. 21. One of four lmuxL<0:3>lines 784 is activated to select one of the four cell array columnssupported by each LSA 712. One, two, or four gmuxL<0:3> lines 786 areactivated to select every fourth, every second, or every global bitlinefor access (i.e., 4:1, 2:1 or 1:1 muxing) depending on the globalmultiplexing option. The bikSelH_bot 756 or bikSelH_top 758 line isactivated to indicate to the block whether the bottom 706B or topsub-block 706A is being accessed. The global word line is activated fora particular memory row being accessed.

The wlRH line 794 is activated simultaneously for all the blocks in therow block containing the memory row. The GSA 724 presents limited swingor full swing differential data on the global bit lines. The wbnkL line792 is activated to request a WRITE operation to the block. The LxCTRL714 immediately activates the senseH lines 766 depending on the globalmultiplexing, and the amplifier core 762 rapidly amplifies thedifferential signal across the sensing nodes. Only the data from globalbitlines selected by the global multiplexing are amplified.

The LxCTRL 714 activates the bnkL line to signal the LxDEC 710 toactivate a local wordline. The LxCTRL 714 activates one of the fourmuxL<0:3> lines 768 corresponding to the activated lmuxL line 784. Thiscauses the LSA 712 to connect one of the four cell columns to thesense-amp amplifier core 762. The amplifier core 762 discharges onebitline in every select pair to VSS depending on the original data onthe global wordlines. The LxDEC 710 corresponding to the activatedglobal wordline activates the local wordline. The data from the localbitlines are written into the cells.

Simultaneously with writing the data from the local bitlines into thecells, the LxCTRL 714 activates the lwlRH line 794. This signal causesthe LxCTRL 714 to rapidly discharge the bitR line 760. When the signalon the bitR line 760 crosses a predetermined threshold, the LxDEC 710deactivates the local wordline. The data is now fully written to thecells. Simultaneously, the LxCTRL 714 deactivates the senseH 766 andmuxL lines 768 and reactivates the genL line 780. When the wlRH line 794is deactivated, the LxCTRL 714 precharges the bitR line 760 to preparefor the next access. When the rbankL line 788 is deactivated, the LxCTRL714 deactivates the bnkL line to prepare for the next access. In oneembodiment, bnkL provides local bank signals to the local decoder. It iscontemplated that the bnkL may comprise bnkL-top and bnkL-bot asprovided previously.

Burn-in Mode

Returning to FIG. 7, one embodiment of the present invention includes aburn-in processor mode for the local blocks activated by a burn in line796 (alternatively referred to as “BIL”). This process or mode stressesthe SRAM module or block to detect defects. This is enabled bysimultaneously activating all the lmuxL<0:3> 784, blkSeIH_bot 756,blkSeIH_top 758, and rbankL lines 788, but not the wlRH line 794 (i.e.,the wlRH line 794 remains inactive). In that case, BIL 796 will beasserted, allowing the local word lines to fire in the LxDEC 710 array.Also, all the LSA muxes will open, allowing all the bitlines to decaysimultaneously. Finally, since wlRH 794 is not activated, bitR 760 willnot decay and the cycle will continue indefinitely until the high clockperiod finishes.

Local Cluster

In one embodiment, a block may be divided into several clusters.Dividing the block into clusters increases the multiplexing depth of theSRAM module and thus the memory. Although the common local wordlinesruns through all clusters in a single block, only sense amps in onecluster are activated. In one embodiment, the local cluster block is athin, low-overhead block, with an output that sinks the tail current ofall the local sense-amps 712 in the same cluster. In this embodiment,the block includes global clusterL 799 and local clusterL 798 interfacesor lines (best viewed in FIG. 7).

Prior to a READ or WRITE operation, a global clusterL line 799(alternatively referred to as “gclusterL”) is activated by the externalinterface for all clusters that are involved in the READ/WRITEoperation. The local cluster includes a gclusterL line 799 or signal onthe line that is buffered and driven to clusterL 798. The clusterL line798 connects directly to the tail current of all the local sense-amps712 in the cluster. If the cluster is active, the sense-amps will fire,but if the cluster is inactive the sense-amps will not fire. Since thecluster driver is actually sinking the sense-amp tail current, the NMOSpull down must be very large. The number of tail currents that thecluster can support is limited by the size of the NMOS pull down and thewidth of the common line attached to the local sense-amp tail current.

It should be appreciated that the muxing architecture described abovecan be used on its own without the amplifier portion of the LSA 712 asillustrated in FIG. 2. In this embodiment, the local bitlinetransmission gates are used to directly connect the local bitlines tothe global bitlines. The GSA's 724 performs all the functions of thelocal sense-amp. The area of the LSA 712 and LxCTRL 714 decrease as lessfunctionality is required of these blocks. For small and medium scalememories, the access time may also decrease because one communicationstage has been eliminated. That is the bitlines now communicate directlywith the GSA 724 instead of the LSA 712. The reduced interface andtiming includes the LxDEC 710 as provided previously but different LSA712 and LxCTRL 714.

In this embodiment, the local bit lines are hierarchically portionedwithout the LSA. Since gbit has a lower capacitance than lbit (due tobeing spread apart and no diffusion load for example) such hierarchicalmemories are generally faster and lower power performance in comparisonto simple flat memories.

In one embodiment, the cluster includes a one-dimensional array of LSA's712 composed of four pairs of bitline multiplexers. Each bitlinemultiplexer may connect a corresponding bitline pair to the globalbitline through a full transmission gate. When a bitline pair isdisconnected from the global bitline, the bitline multiplexer activelyequalizes and precharges the bitline pair to VDD. Because there are fourtimes fewer global bitlines than local bitlines, the global bitlines arephysically wider and placed on a larger pitch. Again, this significantlyreduces the resistance and capacitance of the long global bitlines,increasing the speed and reliability of the memory.

The LSA 712 is controlled by the muxL and lwlH signals shared across theentire LSA 712 array. The muxL<0:3> line 768 selects which of the fourpairs of local bitlines to use on the current access. Any local bitlinenot selected for access is always maintained in a precharged andequalized state by the LSA 712. In one example, the local bitlines areprecharged to VDD.

The lwlRH line 794 line represents a dummy poly line that replicates thepoly local wordline that runs through each row of the block. The lwlRHline 794 forms the gate of dummy transistors that terminate each columnof the cell array. Each dummy transistor replicates the accesstransistor of the 6T SRAM cell.

In a global cluster mode, each block has a single local controller thatcoordinates the activities of the local x-decoders and multiplexers byexercising the bitR 760, bnkL, muxL 768, and lwlRH 782 control signals.Each of these signals is activated by a driver and control logic circuitin the LxCTRL circuit 714. All these signals are normally inactive whenthe memory is in the idle state. The LxCTRL circuit 714 is in turnactivated by Vertical and Horizontal signals.

The Vertical signals are these signals shared by all LxCTRL 714 circuitsin the same column block, including the lmuxL 784, rbnkL 788, rgbitR760, gbitR 760 and wbnkL 792 lines or signals on the line. Only one ofthe four signals lmuxL <0:3> lines 784 is active at any time. The activeline selects one of four cell array columns interfaced to each LSA 712for access. The rbnkL line 788 is activated when a READ operation isrequested from the block. At the end of the READ operation, all globalbitlines that are not actively precharged by the GSA 724 containinglimited swing differential signals representing the stored values in thecells selected by the wlH line and the lmuxL signals.

The rgbitR line 760 is externally maintained at VDD when the memory isidle and is made floating when a read access is initiated. The LxCTRL714 block connects this line to bitR 760 and discharges this signal lineto VSS when a READ access in concluded.

The wgbitR line 760 is externally maintained at VDD when the memory isidle and is discharged during a write access. The LxCTRL 714 blockconnects this line to bitR 760, and relies on the signal arriving at VSSto process a WRITE operation.

The wbnkL line 792 is activated when a WRITE operation is requested fromthe block. Full swing differential signals representing the data to bewritten are present on the global bitlines when this line is activated.

All LxCTRL 714 circuits in the same row block share Horizontal signals.The wlRH line 794 is a replica of the global wordline wlH that runsthrough each row of the memory. The physical layout of the line withrespect to metal layer, width, and spacing, replicates the globalwordline in each row, so as to make the capacitive loading the same.This line is activated simultaneously with a single global wordline forone row in the block on every memory access. The blkSeIH line is activeon every memory access to the block and indicates that the transmissiongate should be opened.

FIGS. 22A, 22B and 22C illustrate different global and muxingarrangements. FIG. 22A illustrates one embodiment of a local sense ampincluding 4:1 muxing and precharge and equalizing. The LSA isrepresented here as a single device having four bit/bit_n pairs; oneSenseH line, one GenL line, one clusterL line and one gbit/gbit_n paircoupled thereto. FIG. 22 illustrates one example of 4:1 muxing(alternatively referred to as 4:1 local muxing) built into the LSA. Inone embodiment, each LSA is coupled to 4 bit/bit_n pairs. During aREAD/WRITE operation, one bitline pair of the four possible bitlinepairs coupled to each LSA is selected. However, embodiments arecontemplated in which the clusters are used without dropping the LSA's(i.e., the clusters are used with the LSA's).

FIG. 22B illustrates one embodiment of the present invention including16:1 muxing. Again, each LSA is coupled to 4 bitline pairs (the 4:1local muxing provided previously). Here, four SenseH lines <0:3> areillustrated coupled to the LSA's where one SenseH line is coupled to oneLSA. This is referred to as 16:1 muxing comprising 4:1 global muxing dueto the SenseH lines and 4:1 local muxing. When one of the SenseH linefires, one of the four LSA's is activated, enabling one of the fourbitline pairs coupled to the activated LSA to be selected. In otherwords, this combination enables at least one bitline pair to be selectedfrom the 16 total bitline pairs available.

FIG. 22C illustrates one embodiment of the present invention including32:1 muxing. Again, each LSA is coupled to 4 bitline pairs (the 4:1local muxing provided previously). Here, four SenseH lines <0:3> areillustrated coupled to the LSA's where one SenseH line is coupled to twoLSA. For example, one SenseH line is coupled to LSA 0 and 4, one SenseHline is coupled to LSA 1 and 4, etc. This embodiment includes two localcluster devices, where the first local cluster device is coupled toLSA's 1-3 via a first ClusterL line while the second local clusterdevice is coupled to LSA's 4-7 via a second ClusterL line. When ClusterLis low, the associated LSA's fire.

The cluster devices are also illustrated coupled to the SenseH lines<0:3> and the GCTRL. GCTRL activates one or more local cluster devices,which in turn fires the associated ClusterL line. If the associatedSenseH line fires, then the LSA is active and one bitline pair isselected. For example, if the GCTRL activates the first cluster device,then the first ClusterL line fires (i.e., ClusterL is Low). If SenseH<0> also fires, then LSA 0 is active and one of the four bitline pairscoupled to LSA 0 is selected. In other words, this combination enablesat least one bitline pair to be selected from the 32 total bitline pairsavailable.

While only 4:1, 16:1 and 32:1 muxing are illustrated, any muxingarrangement is contemplated (i.e., 8:1, 64:1, 128:1, etc.) Further,while only two cluster devices and two ClusterL lines are illustrated,any number or arrangement is contemplated. For example, the number ofcluster devices and cluster lines may vary depending on the number oflocal blocks in the memory architecture or the muxing requirements.Flexible, partially and more choices for a given memory request.

Fuse Structure

One embodiment of the present invention comprises an extended fusestructure and circuit. This embodiment is flexible in that the fusestructure and associated circuits are hardware and softwareprogrammable. For example, the fuses may be permanently blown usinghardware programming (including but not limited to using a laser device,light pulse or electric pulse) or blown using software programming(including but not limited to shifting in appropriate values) or somecombination of the two. Blowing the fuse indicates or encodes thoseportions of a memory cell (or a larger portion of a cell array comprisedof a number of memory cells) that are flawed or unusable and should beshifted out of operation. Shifting the flawed or unusable cells (or cellarrays) out of operation will increase the manufacturing yield of thememory cells and cell array. Higher manufacturing yields may translateinto lower per-unit cost. For example, the manufacturing yield for aparticular memory chip may be pushed from about 40% to more than 90% fora 4 Mbit block.

Fuses are used to indicate or encode those rows or columns of memorycells that are to be shifted out of operation so that only those memorycells without flaws or defects are useable. FIG. 24 illustrates oneembodiment of a fuse structure, generally designated 2400 used inhierarchical memories. In the illustrated embodiment, the fuse structure2400 comprises four inverters 2402, 2404, 2406 and 2408 respectively.Each inverter has inputs (2402 a, 2404 a, 2406 a, and 2408 arespectively) and outputs (2402 b, 2404 b, 2406 b and 2408 brespectively). Fuse 2409 and fuse_n 2411 are illustrated coupled toinverters 2404 and 2402 respectively. Additionally, each inverter iscoupled to VDD 2410 and VSS 2412.

The embodiment illustrated in FIG. 24 includes two devices ortransistors 2416 and 2418. In one embodiment of the present invention,both devices 2416 and 2418 are PMOSFETS. Inverter 2410 and PMOSFET 2416form a latch that stores the value of the fuse circuit. When the fuse isnot blown, the fuse resistor 2420 pulls NODE X 2422 to VSS and triggersthe latch circuit. When the fuse is not blown, PMOSFET 2418 (i.e., theweak device) pulls up NODE X 2422 and triggers the latch circuit.

The actual fuse element in this embodiment is a resistor, generallydesignated 2420, and coupled to VSS 2412. In the embodiment illustratedin FIG. 24, the fuse 2420 is blown using a laser device, light pulse orelectric current for example. When fuse 2420 is not blown(alternatively, referred to as the “as-manufactured state”), then thelow resistance fuse 2420 pulls NODE X 2422 to ground. This results in afuse output of logic “1” indicating that the fuse is not blown.Alternatively, when fuse 2420 is blown, a small static current throughdevice 2418 charges NODE X 2422 up to VDD. This results in a fuse outputof logic “0”, indicating the fuse is blown. The fuses collectivelyencode the fault information inside the memory.

In the above-described embodiment, fuses 2420 are blown duringmanufacturing, testing or sampling for example. The blown fuses 2420(i.e., logic 0) indicate that the associated cell location (or cellarray) is to be repaired. This is a one-time operation. Once a hardwareprogrammable fuse is blown, it cannot be returned to its original,as-manufactured, state.

In some cases, it might be desirable to indicate that a particularmemory cell or portion of a cell array is to be repaired. This isespecially useful when a chip containing the memory cells in a cellarray are being provided to users or customers for sampling during theinitial phases of manufacturing.

As illustrated in FIG. 25, in one embodiment of the present inventionsoftware programmable functionality is added to the fuse structure 2500.In the illustrated embodiment, fuse structure 2500 comprises fourinverters 2502, 2504, 2506 and 2508 respectively. Each inverter hasinputs (2502 a, 2504 a, 2506 a and 2508 a) and outputs (2502 b, 2504 b,2506 b and 2508 b respectively). Fuse 2509 and fuse_n 2511 areillustrated coupled to inverters 2504 and 2502 respectively.Additionally, each inverter is coupled to VDD 2510 and VSS 2512 asillustrated.

FIG. 25 also illustrates two devices or transistors 2516 and 2518. Inthe embodiment illustrated in FIG. 25, the VSS port 2521 of the fuseelement 2520 (similar to VSS 2412 coupled to fuse 2420 illustrated inFIG. 24) is connected to the output 2528 of a programmable register2526. The output driver of the register 2526 is strong enough to ensurea logic 0 input to inverter 2516 even when the device is turned on.Register 2526 also includes dout 2530, clk 2532 and din 2534 interfacesas illustrated.

In the embodiment illustrated in FIG. 25, the memory cell may be shiftedout of operation in two fashions. First, in the hardware programmablemode, a laser device electric pulse, light pulse or other suitabledevice may be used to blow fuse 2520. Alternatively, in the softwareprogrammable mode, the required fuse data or values may be shifted intothe register 2526 using din 2534 and clk 2532 interface, indicating orencoding those portions of a memory cell (or a larger portion of thecell array) are flawed or unusable and should be shifted out ofoperation.

A single memory cell or cell array 2638 has a plurality of fuses 2620.For example, a cell array may have tens of fuses. As illustrated in FIG.26, programmable registers 2626 a-h are chained to fuses 2620 a-hrespectively in a shift register 2642. Chaining the registers 2626 tothe fuses 2620 in a shift register avoids having too many pinrequirements for software programming.

FIG. 26 illustrates one embodiment of the present invention wherein theplurality of registers 2626 and fuses 2620 are used for row redundancyin a cell array 2638. Similarly, a plurality of registers 2626 and fuses2620 may be used for column redundancy in a cell array 2638 or somecombination of row and column redundancy, where the registers 2626 andfuses are all chained to the same shift register. Moreover, the presentinvention is not dependent on any particular type of fuse. Any fuse typeis contemplated

Fuse Box 1, designated 2644, and Fuse Box 2, designated 2646, areillustrated. Chaining the registers to the fuses results in one clockinput (similar to clk 2532 illustrated in FIG. 25) for shifting data andone data input pin interfaces (similar to din 2534 illustrated in FIG.25) It should be appreciated that, in the embodiment illustrated in FIG.26, the memory has two extra pins, one for serial fuse data 2646 and onefor a shift clock 2648. All of the fuse inputs 2646 may be chained ontothe shift register 2642 so that the required fuse data may be shiftedin.

In one embodiment, when the software programmable capability is notused, the shift registers 2626 may be reset to zero upon power up. Thismay be accomplished by tying the serial fuse input pin 2646 to zero andtying the shift clock 2648 to the system clock. After a predeterminednumber of cycles have passed, all the registers 2626 will be reset tozero. In one embodiment, the predetermined number of cycles is equal tothe number of fuses. In an alternative embodiment, an extra reset inputpin (not shown) may be utilized to reset the shift registers 2642 tozero on power up along with the rest of the logic reset on the chip. Thelocation of the blown fuses may be stored on a separate chip or softwarefor future recall and use.

Many modifications and variations of the present invention are possiblein light of the above teachings. Thus, it is to be understood that,within the scope of the appended claims, the invention may be practicedotherwise than as described hereinabove.

1. A programmable device used with a part and adapted to increasemanufacturing yield of the part, the device comprising: at leasthardware and software modes; said hardware mode comprising at least ahardware programmable element adapted to indicate that a portion of thepart should be shifted out of operation; and said software modecomprising at least a software programmable element adapted to shift inan appropriate value indicating that said portion of the part should beshifted out of operation, wherein said hardware and software modes actautonomously.
 2. The device according to claim 1, wherein said hardwareprogrammable element is adapted to be used with a laser device.
 3. Thedevice according to claim 2, wherein said laser device and said hardwareprogrammable element are used to indicate that at least one memory cellis unusable.
 4. The device according to claim 1, wherein said softwareprogrammable element is adapted to be used with an electric pulse. 5.The device according to claim 4, wherein said electric pulse and saidsoftware programmable element are used to indicate that at least onememory cell is unusable.
 6. The device according to claim 1, whereinsaid software programmable element comprises a shift register.
 7. Thedevice according to claim 6, wherein said shift register is adapted toshift in said appropriate value.
 8. The device according to claim 1,wherein said hardware programmable element is used to indicate that atleast one memory cell is unusable.
 9. The device according to claim 1,wherein said software mode comprises a programmable register, andwherein said programmable register comprises a shift clock interfacethat is adapted to shift in said appropriate value to indicate that atleast one faulty memory cell within an array of memory cells should beshifted out of operation.
 10. The device according to claim 9, whereinthe programmable register is a software programmable register.
 11. Thedevice according to claim 9, wherein said programmable registercomprises a data input interface that is adapted to shift in saidappropriate value.
 12. The device according to claim 9, wherein saidprogrammable register is reset upon power up.
 13. The device accordingto claim 12, wherein, when said programmable register is reset, a fuseinput pin is tied to a particular value and said a shift clock is tiedto a system clock.
 14. The device according to claim 9, wherein saidprogrammable register is reset when said software mode is not used. 15.The device according to claim 9, wherein said programmable register isreset after a predetermined number of cycles has passed.
 16. The deviceaccording to claim 15, wherein said predetermined number of cycles isequal to a number of fuses.
 17. The device according to claim 1, whereinsaid software programmable element is used to indicate that at least onememory cell of a plurality of memory cells is unusable.
 18. The deviceaccording to claim 1, wherein said portion of the part comprises afaulty portion of said part.
 19. The device according to claim 1,wherein said software programmable element is adapted to be connected toanother software programmable element, and wherein said another softwareprogrammable element shifts in another appropriate value representinganother portion of said part that should be shifted out of operation.20. The device according to claim 19, wherein said another appropriatevalue is shifted in through a daisy chain configuration of said softwareprogrammable element and said another software programmable element. 21.The device according to claim 1, wherein said hardware programmableelement or said software programmable element comprises a programmableregister that is adapted to indicate that at least one memory cell in amemory cell array is flawed.
 22. The device according to claim 21,wherein a fuse is coupled to said programmable register.
 23. The deviceaccording to claim 22, wherein said fuse and said programmable registerare adapted to be used in a row redundancy scheme or a column redundancyscheme in a memory cell array.
 24. The device according to claim 1,wherein one of said hardware mode and said software mode indicates thatat least one memory cell in a memory cell array is faulty.
 25. Thedevice according to claim 1, wherein said part comprises a memory cellarray, and wherein said portion comprises one or more memory cells ofsaid memory cell array.
 26. The device according to claim 25, whereinsaid one or more memory cells are faulty.
 27. The device according toclaim 1, wherein said device is a programmable fuse.
 28. The deviceaccording to claim 1, wherein said device is within said part.